package edu.kufpg.armatus.dialog; import java.util.ArrayList; import java.util.Collection; import edu.kufpg.armatus.R; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; /** * WordCompletionDialog Class, this extends the {@link android.app.DialogFragment DialogFragment} class. * This class allows for the application to complete words in the input. */ public class InputCompletionDialog extends ConsiderateDialog { private int mReplaceIndex; private ArrayList<String> mWords; /** * WordCompletionDialog Instance Function. This function creates a new instance for the word completion that returns an argument. * @param {@link java.lang.String words} * @return */ public static InputCompletionDialog newInstance(int replaceIndex, Collection<String> words) { InputCompletionDialog wcd = new InputCompletionDialog(); Bundle args = new Bundle(); args.putInt("index", replaceIndex); args.putStringArrayList("words", new ArrayList<String>(words)); wcd.setArguments(args); return wcd; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mReplaceIndex = getArguments().getInt("index"); mWords = getArguments().getStringArrayList("words"); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); View v = inflater.inflate(R.layout.word_completion_dialog, container, false); setCancelable(true); getDialog().setTitle("Word completion"); ListView listView = (ListView) v.findViewById(R.id.word_suggestions_list); listView.setAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, mWords)); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { getConsole().completeInput(mReplaceIndex, ((TextView) view).getText().toString()); dismiss(); } }); return v; } }